//package leetcode;
//
//class TreeNode {
//    int val;
//    TreeNode left;
//    TreeNode right;
//
//    public TreeNode() {
//    }
//
//    public TreeNode(int val) {
//        this.val = val;
//    }
//
//    public TreeNode(int val, TreeNode left, TreeNode right) {
//        this.val = val;
//        this.left = left;
//        this.right = right;
//    }
//}
//
//class Solution {
//    public int sumOfLeftLeaves(TreeNode root) {
//        return root == null ? 0 : dfs(root);
//    }
//
//    private int dfs(TreeNode node) {
//        int ans = 0;
//        if (node.left != null) {
//            ans += isLeafNode(node.left) ? node.left.val : dfs(node.left);
//        }
//        if (node.right != null && !isLeafNode(node.right)) {
//            ans += dfs(node.right);
//        }
//
//        return ans;
//    }
//
//    public boolean isLeafNode(TreeNode node) {
//        return node.left == null && node.right == null;
//    }
//}
//
//public class Test3S {
//}